//////////////////////////////////////////////////////////////////////////
// $Id: Clear.cpp,v 1.1 2009/04/03 12:46:11 sunjun Exp $
//////////////////////////////////////////////////////////////////////////

#include "Local.h"

//////////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN

//////////////////////////////////////////////////////////////////////////	

	Clear::Clear()
	{
		mType = CT_TARGET;
		mColor = 0;
		mZ = 1.0f;
		mStencil = 0;
	}

	Clear::~Clear() 
	{
		
	}

	//////////////////////////////////////////////////////////////////////////

	/*
	====================
	set
	====================
	*/
	INLINE VOID Clear::set( U32 type, U32 color, F32 z, U32 stencil )
	{
		mType = type;
		mColor = color;
		mZ = z;
		mStencil = stencil;
	}

	/*
	====================
	operator
	====================
	*/
	INLINE VOID Clear::operator() (Context*rc)
	{
		GUARD(Clear::operator());

		CHECK(rc);

		HRESULT hr = ((IDirect3DDevice9*)rc->handle())->Clear( 0, NULL, mType, mColor, mZ, mStencil );
		if(FAILED(hr)) MAssert(VA("Clear::operator() : fail to clear(%s)!", DXGetErrorDescription(hr)));

		UNGUARD;
	}
	

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////
